// 1.0 引入axios，自己在终端下载的axios，下载方法 yarn add axios
import axios from 'axios'
// qs是一个方法集合，在node_moudels里面的
import qs from 'qs'

// 2.0 设置默认的请求路径及配置,结合的是云掌柜ERP的登录接口URL
axios.defaults.baseURL = 'http://wxopen.besthuishenghuo.com/api'
// 设定的最长请求时间，时间到了不在请求显示错误
axios.defaults.timeout = 10000

// 3.0 设置 请求和响应 的拦截
axios.interceptors.request.use((config) => {
  return config
})

axios.interceptors.response.use((res) => {
  return res.data
})

// 4.0 导出请求和响应的方式
export default {
  get(url, params) {
    return new Promise((resolve, reject) => {
      axios
        .get(url, { params })
        .then((res) => {
          // 成功 执行成功的回调并且传入成功的数据
          resolve(res)
        })
        .catch(() => {
          // 将来统一处理失败 有可能是专门的组件进行提示
          reject(new Error('请求失败'))
        })
    })
  },
  post(url, body) {
    return new Promise((resolve, reject) => {
      // qs.stringify 会把对象转换为 k=v&k=v 这种格式
      axios
        .post(url, qs.stringify(body))
        .then((res) => {
          // 成功 执行成功的回调并且传入成功的数据
          resolve(res)
        })
        .catch(() => {
          // 将来统一处理失败 有可能是专门的组件进行提示
          reject(new Error('请求失败'))
        })
    })
  }
}
